JBoss.orgCommunity Documentation
M3UA stands for MTP Level 3 (MTP3) User Adaptation Layer as defined by the IETF SIGTRAN working group in RFC 4666 (which replaces and supersedes RFC 3332). M3UA enables the SS7 protocol's User Parts (e.g. ISUP, SCCP and TUP) to run over IP instead of legacy SS7. JBoss Communications M3UA Stack use the services of Mobicents SCTP stack to transmit MTP-TRANSFER primitives.
To know more about Mobicents SCTP stack, read the documentation included with Mobicents SCTP library.
JBoss Communications M3UA Stack provides the transport of MTP-TRANSFER primitives across an established SCTP association between an SGP and an ASP. The JBoss Communications M3UA Stack may also be used for point-to-point signaling between two IP Server Processes (IPSPs).
JBoss Communications M3UA Stack provides flexibility to be configured as either Single Exchange (SE) or Double Exchange (DE) of ASP State Maintenance (ASPSM) Messages and ASP Traffic Maintenance (ASPTM) messages
Below diagram shows various layers involved
The internal structure of JBoss Communications M3UA stack looks like
Instance of M3UAManagement
manages the AS
, AspFactory
and routes.
In addition to manage As
, AspFactory
and routes, management also persist the state of each in XXX_M3UA.xml file,
where XXX is unique name give to management instance.
M3UAManagement
is divided into two sections 1) managing the resources and 2) configuring management
In case of Mobicents SS7 Service, the managing resources is taken care by Shell Command Line as explained in Section 5.5, “M3UA Management” and configuartion of management is done in jboss-beans.xml as explained in Section 3.4.1, “Configuring M3UA”
public As createAs(String asName, Functionality functionality, ExchangeType exchangeType, IPSPType ipspType,
RoutingContext rc, TrafficModeType trafficMode)
Create's a new As of type specified by Functionality
. Functionality
is enum of type AS, IPSP or SGW.
If the Functionality
is IPSP,
IPSPType
type should specify if its SERVER or CLIENT side.
If Functionality
is AS, it automatically assumes client side and tries to send the ASPUP to peer.
If Functionality
is SGW, it automatically assumes server side and wait's for ASPUP from peer.
ExchangeType
specifies if its single or double exchange.
RoutingContext
is not mandatory, if passed same value will be used in all the relevant ASP Traffic Maintenance, Management and Transfer Messages
TrafficModeType
is not mandatory and default is Loadshare. Broadcast mode is not supported.
Appropiate Exception is thrown if there is already As with same name.
public AspFactory createAspFactory(String aspName, String associationName)
Create's a new AspFactory
. There is one-to-one relation between AspFactory
and SCTP's Asscoiation
.
associationName represents the underlying SCTP Association.
Appropiate Exception's are thrown if there is already AspFactory with same name or there is no SCTP Association with the given name or SCTP Association is already assigned to some other AspFactory.
public As destroyAs(String asName)
Destroy existing As.
Appropiate Exception's are thrown if there is no As with given name, or As is ACTIVE or one ore more ASP's are assigned to this AS.
public AspFactory destroyAspFactory(String aspName)
Destroy existing AspFactory.
Appropiate Exception's are thrown if there is no AspFactory with given name.
public Asp assignAspToAs(String asName, String aspName)
Assign's the Asp (AspFactory with name aspName should be created before this step) to As.
Appropiate Exception's are thrown if there is no AspFactory with given name or no As with given name.
public Asp unassignAspFromAs(String asName, String aspName)
Unassign's the Asp from As.
Appropiate Exception's are thrown if there is no ASP or As with given name.
public void startAsp(String aspName)
Start's the ASP. The ASP state maintenance messages are exchanged if this ASP is of IPSP and client side or if its AS side. This will automatically start the underlying SCTP's Asscoiation.
Appropiate Exception's are thrown if there is no ASP with given name or ASP is already started.
public void stopAsp(String aspName)
Stop's the ASP. This will automatically stop the underlying SCTP's Asscoiation.
Appropiate Exception's are thrown if there is no ASP with given name or ASP is already stoped.
public void addRoute(int dpc, int opc, int si, String asName)
Add the As with the given asName as route for given dpc, opc and si. Specifying DPC is mandatory, however opc and si can be passed as -1 which is wild character. For example if MTP3 User Application sends message with dpc=5, opc=4 and si=3, management will try to search the AS with exact value of dpc, opc and si. If not found, managemnt will subsitute si with wild character and serach again. If not found management will substitute opc with wild character and search again. If not found its an error and message is dropped with appropriate error message.
Appropiate Exception's are thrown if there are already maximum AS configured for give combination of dpc, opc and si or there is no As for given asName.
public void removeRoute(int dpc, int opc, int si, String asName)
Remove the As as route for passed comibnation of dpc, opc and si.
Appropiate Exception's are thrown if is no As for given asName.
setPersistDir
Management when started looks for file XXX_M3UA.xml containing serialized state of underlying As, AspFactory and routes. Set the directory path to direct M3UAManagement to look at specified directory for underlying serialized file.
If directory path is not set, Management searches for system property m3ua.persist.dir
to get the path for directory.
Even if m3ua.persist.dir
system property is not set, Management will look at System set property user.dir
setTransportManagement
Set the instance of SCTP transport Management
SCTP Management
instance should have already been created and configured
setMaxAsForRoute
Maximum number of AS that can be configured for routing for same DPC.
setDeliveryMessageThreadCount
Number of threads for call back to Mtp3UserPartListener
. The order is maintained with respect to SLS. For example same thread will make call back for every message with same SLS.
Default value is set to 1.